package com.mgetool.ui.animation;

import com.mgetool.ui.AbstractDrawable;
/**
 * 动画类	提供了基本的动画接口，可根据此类扩展出多种功能的动画
 * @author wangbin
 *
 */
public abstract class AbstractAnimation extends AbstractDrawable{
	
	/**
	 * 动画是否播放中
	 * @return
	 */
	abstract public boolean isPlay();
	
	/**
	 * 设置动画播放状态
	 * @param isPlay
	 */
	abstract public void setPlay(boolean isPlay);
	
	/**
	 * 得到当然播放帧
	 * @return
	 */
	abstract public Frame getCurFrame();
	
	/**
	 * 添加帧
	 * @param frame
	 */
	abstract public void appendFrame(Frame frame);
	
	/**
	 * 播放动画
	 */
	abstract public void play();
	
	/**
	 * 停止播放
	 */
	abstract public void stop();
	
	/**
	 * 是否播放完毕
	 */
	abstract public boolean isEnd();
	
	/**
	 * 更新坐标
	 */
	abstract protected void updataPosition();
	
	/**
	 * 更新透明度
	 */
	abstract protected void updataAlpha();
	
	/**
	 * 更新缩放比例
	 */
	abstract protected void updataScaling();
	
	/**
	 * 重置动画播放数据，回到播放前的状态
	 */
	abstract public void reset();
	
	/**
	 * 播放下一帧
	 */
	abstract public void nextFrame();
	
	/**
	 * 更新下一帧的索引
	 */
	abstract public void updataFramIdx();
	
	/**
	 * 更新循环
	 */
	abstract public void updataLoop();
	
	/**
	 * 暂停播放
	 */
	abstract public void pause();
	
	/**
	 * 继续播放
	 */
	abstract public void resume();
	
}
